package com.zerdoor.dao;

import java.util.List;
import java.util.Map;

/**
 * Created by zhongjieyu on 2014/11/3.
 * 雇佣艺术家发布任务Dao接口
 */
public interface IEmployArtistTaskDao {

    /**
     * 根据majorid查询码表数据
     * @param majorid
     * @return
     * @throws Exception
     */
    List<Map<String,String>> findMinorCodeByMajorid(int majorid) throws Exception;


    /**
     * 根据用户ID查询艺术家信息
     * @param userId 艺术家ID
     * @return
     * @throws Exception
     */
    Map<String,String> findUserInfoByUserId(int userId) throws Exception;

    /**
     * 增加单条任务信息数据，返回插入后的ID
     * @param taskInfo 任务信息
     * @throws Exception
     */
    void addTaskInfo(Map<String, String> taskInfo) throws Exception;

    /**
     * 根据ID修改任务信息数据
     * @param taskInfo 任务信息
     * @throws Exception
     */
    void updateTaskInfoById(Map<String, String> taskInfo) throws Exception;


    /**
     * 插入任务订单表，并返回插入后的ID
     * @param orderTask
     * @return
     * @throws Exception
     */
    void addOrderTask(Map<String,String> orderTask ) throws Exception;

    /**
     * 增加单条竞标信息数据
     * @param param
     * @throws Exception
     */
    void addBidinfo(Map<String, String> param) throws Exception;

    /**
     * 修改当前项目进度，传入进度代码
     * @throws Exception
     */
    void updateCurrentProgressByTaskId(Map<String,String> param) throws Exception;


    /**
     * 根据任务ID查询任务信息数据
     * @param taskId 任务ID
     * @return
     * @throws Exception
     */
    Map<String,Object> findTaskInfoByTaskId(String taskId) throws Exception;


    /**
     * 查询支付定金比例
     * @return
     * @throws Exception
     */
    String findDepositScale() throws Exception;


    /**
     * 根据项目ID查询招标预算，如果该项目为不托管定金，那么则返回空
     * @param itemId
     * @return
     * @throws Exception
     */
    Map findItemBudgetById(String itemId)  throws Exception;


    /**
     * 根据用户ID查询用户账户余额
     * @param userId
     * @return
     * @throws Exception
     */
    float findUserWalletById(String userId) throws Exception;


    /**
     * 根据用户ID和订单总金额查询余额是否足够,账户是否冻结
     * @param param
     * @return
     * @throws Exception
     */
    Map<String,String> findUserWalletByUserId(Map<String,String> param) throws Exception;


    /**
     * 插入用户钱包记录
     * @param param
     * @throws Exception
     */
    void addUser_wallet(Map<String,String> param) throws Exception;

    /**
     * 根据用户ID更新用户账户余额
     * @param param
     * @throws Exception
     */
    void updateUserWalletByUserId(Map<String,String> param) throws Exception;
}
